<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>

        //1.全局变量和局部变量
        // 全局变量：定义在函数外部，或者在函数内部不定义而直接赋值的变量，可以在任意函数中访问、修改，将所在页面关闭后销毁
        // 局部变量：定义在函数内部，只能在当前函数内访问、修改，函数运行结束，变量自动销毁
        var username="老杨";//全局变量,在任意函数中都可以访问
        function show(){
            var age=60;//局部变量，只能在当前函数中访问
            sex="女";//全局变量，在函数内未使用var声明,直接赋值的变量，也是全局变量
            console.log(username);
            console.log("age:"+age+"，sex:"+sex);
        }
        show();
        // console.log(age);//报错，因为age是局部变量
        console.log(sex);

        function show2(){
            // console.log(age);//局部变量
            console.log(sex);
        }
        show2();


        // 2.当全局变量和局部变量同名
        //当全局变量和局部变量同名的时候,在函数中访问的是局部变量
        // 此时需要在函数中访问全局变量,需要加上window前缀， 在一定条件下也可以使用this前缀

        var hobby="喝酒";//全局变量
        function show3(){
            var hobby="吃饭";//局部变量
            console.log("局部变量："+hobby);
            console.log("全局变量："+window.hobby);
            console.log("全局变量："+this.hobby);
        }
        show3();

        //3.在js中使用var不支持块级作用域，使用let支持块级作用域

        //块级作用域
        {   
            var film="花木兰";
            let film2="姜子牙";
            console.log(film2);
        }
        console.log(film);
       

       for(var i=1;i<5;i++){
            let user="熊振宇";
            alert("熊振宇"+i+"次");
       }
       console.log(user);
    </script>
</head>
<body>
    
</body>
</html>